<?php

namespace Medicina\KernelBundle\Entity;

use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints as DoctrineAssert;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 * Medicina\KernelBundle\Entity\Oficina
 *
 * @ORM\Table(name="oficina")
 * @ORM\Entity
 * @UniqueEntity("nombre")
 */
class Oficina {

    /**
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @ORM\Column(name="nombre", type="string", length=50, nullable=false,  unique=true)
     */
    private $nombre;
    
   

    /**
     * @ORM\OneToMany(targetEntity="ConcursoOficina", mappedBy="oficina", cascade={"persist"})
     */
    private $concursos;

    /**
     *  @ORM\OneToMany(targetEntity="Impugnacion", mappedBy="oficina")
     */
    private $impugnaciones;

    /**
     *  @ORM\OneToMany(targetEntity="Resolucion", mappedBy="oficina")
     */
    private $resoluciones;

    /**
     * @ORM\OneToMany(targetEntity="User", mappedBy="oficina")
     */
    protected $usuarios;

    public function __construct() {
        $this->concursos = new \Doctrine\Common\Collections\ArrayCollection();
        $this->impugnaciones = new \Doctrine\Common\Collections\ArrayCollection();
        $this->resoluciones = new \Doctrine\Common\Collections\ArrayCollection();
        $this->usuarios = new \Doctrine\Common\Collections\ArrayCollection();
        ;
    }

    public function __toString() {
        return $this->getNombre();
    }

    public function getId() {
        return $this->id;
    }

    public function setNombre($nombre) {
        $this->nombre = $nombre;
    }

    public function getNombre() {
        return $this->nombre;
    }


    
    public function addConcursoOficina(\Medicina\KernelBundle\Entity\ConcursoOficina $concursos) {
        $this->concursos[] = $concursos;
    }

    public function getConcursos() {
        return $this->concursos;
    }

    public function addImpugnacion(\Medicina\KernelBundle\Entity\Impugnacion $impugnaciones) {
        $this->impugnaciones[] = $impugnaciones;
    }

    public function getImpugnaciones() {
        return $this->impugnaciones;
    }

    public function addResolucion(\Medicina\KernelBundle\Entity\Resolucion $resoluciones) {
        $this->resoluciones[] = $resoluciones;
    }

    public function getResoluciones() {
        return $this->resoluciones;
    }

    /**
     * Add usuarios
     *
     * @param Medicina\KernelBundle\Entity\User $usuarios
     */
    public function addUser(\Medicina\KernelBundle\Entity\User $usuarios) {
        $this->usuarios[] = $usuarios;
    }

    /**
     * Get usuarios
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getUsuarios() {
        return $this->usuarios;
    }

    public function esBorrable() {
        return true;
        return ($this->getResoluciones()->isEmpty()&&$this->getImpugnaciones()->isEmpty()&&$this->getUsuarios()->isEmpty());
    }

    
}